package ar.edu.utn.frba.disenio.aerolineas;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import ar.edu.utn.frba.disenio.Busqueda;
import ar.edu.utn.frba.disenio.Usuario;
import ar.edu.utn.frba.disenio.Vuelo;

public class Aerolineas {

	private List<Aerolinea> aerolineasRegistradas = new ArrayList<Aerolinea>();
	private Map<String,Integer> vuelosComprados= new HashMap<String,Integer>();

	public List<Vuelo> buscarVuelos(Usuario usuario, Busqueda busqueda) {
		
		List<Vuelo> vuelosDisponibles = new ArrayList<Vuelo>();
		Iterator<Aerolinea> itAerolineas = getAerolineasRegistradas().iterator();
		
		while (itAerolineas.hasNext() )
		{
			List<Vuelo> vuelos = itAerolineas.next().asientosDisponibles(usuario,busqueda);
			if (vuelos != null)
				vuelosDisponibles.addAll(vuelos);
		}
		
		return vuelosDisponibles;
	}
	
	public void actualizarVuelosComprados(String codVuelo){

		Integer newValue = getVuelosComprados().containsKey(codVuelo) ?  getVuelosComprados().get(codVuelo) + 1 : 1 ;
		getVuelosComprados().put(codVuelo, newValue);
	}
	
	public Integer getCantidadDeCompras(String key){
		return this.getVuelosComprados().containsKey(key) ? this.getVuelosComprados().get(key) : 0;
	}
	
	public void registrarAerolinea(Aerolinea nuevaAerolinea)
	{
		getAerolineasRegistradas().add(nuevaAerolinea);
	}

	public Map<String,Integer> getVuelosComprados() {
		return vuelosComprados;
	}

	public void setVuelosComprados(Map<String,Integer> vuelosComprados) {
		this.vuelosComprados = vuelosComprados;
	}

	public List<Aerolinea> getAerolineasRegistradas() {
		return aerolineasRegistradas;
	}

	public void setAerolineasRegistradas(List<Aerolinea> aerolineasRegistradas) {
		this.aerolineasRegistradas = aerolineasRegistradas;
	}
	
}
